The computer animation of an object whose characteristics change through time has proven an exceedingly difficult problem to solve. A common technique for digitally representing an object is to define a "skeleton" for the object and to surround the skeleton with an envelope that represents the actual shape of the object. See FIG. 1. Current animation software allows an animator to move the object by selecting a segment on the skeleton and moving the segment. For example, by clicking, with a mouse, on a forearm skeletal section 10 of an object 12 shown in FIG. 1 and moving a cursor, the entire segment moves according to the desired motion, which is shown in the FIG. 2a as a rotation. In this manner, an animator may efficiently create moving sequences of an object.
The procedure just described presents difficulties for the modeling of the actual shape of the object as opposed to its skeleton. The outer surface of the object may stretch, shrink or otherwise transform in a manner that cannot be completely accounted for in the movement of the skeleton. Prior art techniques provide imperfect corrections to the transformation of the envelope.
FIG. 2a illustrates an example of a problem caused by the rotation operation illustrated in FIG. 1. The envelope of each part of an object is defined with reference to a specific segment of the skeleton. For example, an envelope 16 of the forearm 10 may be defined as a set of points which lie at a predetermined distance from the forearm segment 10 while an envelope 18 of the bicep may be defined as a set of points which lie at a predetermined distance from the upper arm segment 14. When the forearm segment 10 is rotated, the forearm envelope 16 rotates along with the forearm 10 to create the shape illustrated in FIG. 2a, which does not account for the stretching and shrinking respectively of the bottom and top of the envelope 16. To solve this problem, those parts of the envelope that correspond to a skeletal segment and that are influenced by another segment(s) are moved as a weighted function of the influences. For example, a point 20 near the elbow illustrated in FIG. 2a may move 80% according to the movement of the forearm 10 and 20% according to the movement of the upper arm 14 while points 22 and 24 exactly at the joint may move 50% according to the movement of both the forearm 10 and the upper arm 14. In this manner, as illustrated in FIG. 2b, the envelope surrounding a joint may be transformed so that there are no overlaps or breaks in an object's envelope.
The technique outlined above, however, provides only a first order correction of the envelope. Second order corrections (or "secondary corrections"), beyond the overlapping and tearing described above, cannot at present be generated without some assistance from an animator. For example, if the skin at the elbow of the object shown in FIG. 2a has wrinkles, the wrinkles may transform in a very complicated fashion as the elbow bends. Present animation software does not provide the ability to model such sophisticated transformations. Further, many transformations may require a detailed analysis of the properties of the modelled objected. Continuing with the example of FIGS. 1, 2a and 2b, a human may rotate his or her forearm and the amount of bicep flex may depend on factors such as muscle tension other than the simple rotation. It will be appreciated that there are limitless examples of envelope transformations that cannot be modelled simply by knowledge of the movement of an underlying skeleton.
Thus, according to current techniques, each time the skeletal movement process results in a form of the object corresponding to a particular positioning of the skeletal segments (hereinafter "pose") that does not accord with the desired shape of the object for that pose, animators must make these corrections by hand, which is a tedious and time consuming process. Even where an animator has previously obtained the desired shape for similar or identical poses, the animator must manually make the same corrections that had previously been made.
There is thus a need to assist animators in the process of correcting the envelope that corresponds to a particular pose. In particular, there is a need to eliminate the time consuming and expensive process of manually correcting the envelope of an object each time the primary enveloping correction for a pose does not result in the desired envelope.